<template>
  <upload-excel :on-success="handleSuccess" />
</template>

<script>
import { importEmployee } from '@/api/employees'
//
import { formatExcelDate } from '@/utils/index'
export default {
  name: 'Import',
  methods: {
    handleSuccess({ header, results }) {
      console.log(header, results)
      const result = this.formMant(results)
      console.log('result', result)
      this.doAdd(result)
    },

    // 批量发送

    async doAdd(data) {
      console.log('doADD', 1)
      try {
        const res = await importEmployee(data)
        console.log('importEmployee', res)
        //
        if (res.code !== 10000) return this.$message.error(res.message)// 失败
        // 成功
        this.$message.success(res.message)
        // 成功后 自动返回渲染页面
        this.$router.back()

        // 保存数据
      } catch (err) {
        console.log('importEmployee', err)
      }
    },
    // 函数版
    formMant(data) {
      // 1. 映射对象，根据映射对象找英文的键
      const mapInfo = {
        '入职日期': 'timeOfEntry',
        '手机号': 'mobile',
        '姓名': 'username',
        '转正日期': 'correctionTime',
        '工号': 'workNumber',
        '部门': 'departmentName',
        '聘用形式': 'formOfEmployment'
      }

      // 需求,把中文的键名换成英文的键名,值保留
      const result = data.map((zhobj) => {
        const enobj = {}
        // 得到每个对象的键名,并且返回一个数组
        const zhkeys = Object.keys(zhobj)
        console.log('zhkeys', zhkeys)
        // zhkeys是一个数组
        zhkeys.forEach(zhkey => {
          const enkey = mapInfo[zhkey]
          if (enkey === 'timeOfEntry' || enkey === 'correctionTime') {
            enobj[enkey] = new Date(formatExcelDate(zhobj[zhkey]))
          } else { // 把map里面的键值对
          // 得到键名为英文的对象
          // 这步就是  把中文的值赋值给mapinfo的属性名
            enobj[mapInfo[zhkey]] = zhobj[zhkey]
          }
        })
        return enobj
      })
      // console.log("result",result);
      return result
    }

    //  console.log("data1",data1);

  }
}
</script>
